package cn.westv.scps.yunpian;

import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.yunpian.sdk.model.Result;
import com.yunpian.sdk.model.Template;

/**
 * 模版
 * 
 * https://www.yunpian.com/api2.0/api-domestic/tpl_add.html
 * 
 * @author dzh
 * @date Dec 5, 2016 12:33:43 PM
 * @since 1.2.0
 */
public class TplApi extends Yunpian {

	/**
	 * 添加模板
	 * 
	 * @param tplContent
	 * @param notifyType
	 *            非必须
	 * @return
	 */
	public Result<Template> add(String tplContent, String notifyType) {
		Map<String, String> param = clnt.newParam(2);
		param.put(TPL_CONTENT, tplContent);
		if (StringUtils.isNotBlank(notifyType)) {
			param.put(NOTIFY_TYPE, notifyType);
		}
		Result<Template> r = clnt.tpl().add(param);
		return r;

	}

	/**
	 * 如果tplId为空，返回所有模板
	 * 
	 * @param tplId
	 * @return
	 */
	public Result<List<Template>> get(String tplId) {
		Map<String, String> param = clnt.newParam(1);
		if (StringUtils.isNotBlank(tplId)) {
			param.put(TPL_ID, tplId);
		}
		Result<List<Template>> r = clnt.tpl().get(param);
		return r;
	}

	/**
	 * 如果tplId为空，删除所有模板
	 * 
	 * @param tplId
	 * @return
	 */
	public Result<Template> del(String tplId) {
		Map<String, String> param = clnt.newParam(1);
		if (StringUtils.isNotBlank(tplId)) {
			param.put(TPL_ID, tplId);
		}
		Result<Template> r = clnt.tpl().del(param);
		return r;
	}

	/**
	 * 获取默认模板，如果tplId为空，返回所有默认模板
	 * 
	 * @param tplId
	 * @return
	 */
	public Result<List<Template>> getDefault(String tplId) {
		Map<String, String> param = clnt.newParam(1);
		if (StringUtils.isNotBlank(tplId)) {
			param.put(TPL_ID, tplId);
		}
		Result<List<Template>> r = clnt.tpl().get_default(param);
		return r;
	}

	/**
	 * 修改模板
	 * @param tplId
	 * @param tplContent
	 * @return
	 */
	public Result<Template> update(String tplId, String tplContent) {
		Map<String, String> param = clnt.newParam(2);
		param.put(TPL_ID, tplId);
		param.put(TPL_CONTENT, tplContent);
		Result<Template> r = clnt.tpl().update(param);
		return r;
	}

//	@Test
//	@Ignore
//	public void add_voice_notifyTest() {
//		Map<String, String> param = clnt.newParam(2);
//		param.put(TPL_CONTENT, "应用#name#在#time#无法响应");
//		// param.put(NOTIFY_TYPE, "true");
//		Result<Template> r = clnt.tpl().add_voice_notify(param);
//		System.out.println(r);
//	}
//
//	@Test
//	@Ignore
//	public void update_voice_notifyTest() {
//		Map<String, String> param = clnt.newParam(2);
//		param.put(TPL_ID, "3373");
//		param.put(TPL_CONTENT, "应用#name#在#time#无法响应1");
//		// param.put(NOTIFY_TYPE, "true");
//		Result<Template> r = clnt.tpl().update_voice_notify(param);
//		System.out.println(r);
//	}

}
